﻿/**
 *
 * @file BrowserTableHandlerSubsystemPlate.h
 * @brief  SEA平板表格处理器
 * @author wangning (2185896382@qq.com)
 * @date 2024-12-23
 *
 */
#ifndef _WIDGET_TABLEHANDLER_SUBSYSTEM_Plate_H___
#define _WIDGET_TABLEHANDLER_SUBSYSTEM_Plate_H___

#include "BrowserTableHandlerSubsystemAbstract.h"
namespace Acoustics
{
    class FITKAbstractSEASubSys;
}
namespace GUI
{
    /**
     * @brief SEA平板表格处理器
     * @author wangning (2185896382@qq.com)
     * @date 2024-12-23
     */
    class GUIWIDGETAPI BrowserTableHandlerSubsystemPlate :
        public BrowserTableHandlerSubsystemAbstract
    {
    public:
        /**
         * @brief 构造函数
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        using BrowserTableHandlerSubsystemAbstract::BrowserTableHandlerSubsystemAbstract;
        virtual ~BrowserTableHandlerSubsystemPlate() = default;
        /**
         * @brief 更新表格，包含头与数据
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        void updateTable() override;
        /**
        * @brief 更新表格数据
        * @author wangning (2185896382@qq.com)
        * @date 2024-12-10
        */
        void updateData() override;
    
    protected:
        /**
        * @brief 根据列名获取列数
        * @author wangning (2185896382@qq.com)
        * @date 2024-12-10
        */
        int getTitleColumnByName(QString name);

        /**
        * @brief 更新每一行
        * @author wangning (2185896382@qq.com)
        * @date 2024-12-10
        */
        void updateLine(QList<Acoustics::FITKAbstractSEASubSys*> *list);

    protected:
        /**
         * @brief 获取SEA梁操作器
         * @return EventOper::OperAbstractMaterial*
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        EventOper::OperAbstractSubsystem* getSubsystemOper() override;
        /**
         * @brief 是否允许批量修改
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        bool enableAttriSet() override;

    };

}


#endif